# ALR Updater

Модульный бот (форк LURE-updater, который автоматически проверяет наличие обновлений и отправляет новые пакеты в [alr-repo](https://gitverse.ru/Xpamych/xpamych-alr-repo).

---

### Как это работает

Поскольку ALR предназначен для установки множества различных типов пакетов, этот бот принимает [плагины](https://gitverse.ru/Xpamych/ALR-updater-plugins) в виде файлов [Starlark](https://github.com/bazelbuild/starlark), а не жестко кодирует каждый пакет. Эти плагины могут планировать запуск функций через определенные промежутки времени или при получении веб-запроса, и у них есть доступ к постоянному хранилищу ключей/значений для отслеживания информации. Это позволяет плагинам использовать множество различных способов обнаружения обновлений, поступающих в систему.

Например, плагин для "discord-bin" каждый час повторно опрашивает API discord на предмет наличия актуальной ссылки для скачивания. Он помещает ссылку в постоянное хранилище, и если она изменилась с прошлого раза, он анализирует URL-адрес, чтобы извлечь номер версии, и использует его для обновления сценария сборки для "discord-bin`.

Другим примером является плагин для "alr-bin", который принимает webhook от GoReleaser. Когда он получает webhook, он анализирует текст в формате JSON и получает URL-адрес загрузки, который используется для загрузки файла контрольной суммы, и использует содержащуюся в нем информацию для обновления сценария сборки для "alr-bin".

---

### Configuration

В файле `alr-updater.example.toml` есть пример конфигурационного файла. Отредактируйте его в соответствии со своими потребностями и поместите в `/etc/alr-updater/config.toml`. Вы можете изменить расположение конфигурационного файла, используя флажок "--config" или "-c".